﻿using Models;
using Models.DTO;
using System;
using System.Collections.Generic;
using System.Text;

namespace IBLL
{
    public interface IDepartmentInfoBLL
    {
        /// <summary>
        /// 返回父级部门和领导信息下拉列表数据
        /// </summary>
        /// <returns></returns>
        object GetSelectOptions();

        /// <summary>
        /// 新增部门的方法
        /// </summary>
        /// <param name="departmentInfo">新增的部门实体</param>
        /// <returns></returns>
        bool CreateDepartmentInfo(DepartmentInfo departmentInfo, out string msg);

        /// <summary>
        /// 获取部门列表
        /// </summary>
        /// <param name="page">第几页</param>
        /// <param name="limit">每页几条数据</param>
        /// <param name="departmentName">部门名称模糊查询条件</param>
        /// <param name="count">数据总数</param>
        /// <returns></returns>
        List<GetDepartmentInfoDTO> GetDepartmentInfos(int page, int limit, string departmentName, out int count);

        /// <summary>
        /// 根据id获取部门详情,out
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        DepartmentInfo GetDepartmentInfoById(string id);

        /// <summary>
        /// 编辑部门的方法
        /// </summary>
        /// <param name="departmentInfo"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        bool UpdateDepartmentInfo(DepartmentInfo departmentInfo, out string msg);

        /// <summary>
        /// 用户软删除方法
        /// </summary>
        /// <param name="id">被删除的用户Id集合</param>
        /// <returns></returns>
        bool DeleteDepartmentInfo(string id);

        /// <summary>
        /// 批量部门删除方法
        /// </summary>
        /// <param name="ids">被删除的部门Id集合</param>
        /// <returns></returns>
        bool DeleteDepartmentInfos(List<string> ids);
    }
}
